#include <catch2/catch_all.hpp>

#include "Types.h"
#include "UniqueID.h"

TEST_CASE("Unique ID Generation", "[UniqueID]") {
    // 重置计数器以确保测试一致性
    auto id1 = geo::UniqueIDGenerator<int>::getNextID(); // 触发静态初始化
    REQUIRE(id1 == 0);
    auto id2 = geo::UniqueIDGenerator<int>::getNextID();
    REQUIRE(id2 == 1);

    auto id3 = geo::UniqueIDGenerator<double>::getNextID(); // 不同类型，独立计数器
    REQUIRE(id3 == 0);
    auto id4 = geo::UniqueIDGenerator<double>::getNextID();
    REQUIRE(id4 == 1);
}
